zdawg's NES rom hacking document, version .65
viewer discretion advised!!!
not for the eyes of children
 

You may ask why I actually updated this.
Well, I had a bad case of diarrhea, and I was bored. :)

----------------------------------------------------------------------------
Table of Contents:
 

1.  Files You WILL Need                      --- http://zophar.net/
2.  Start Hacking!!!                             --- Intermediate Version*
3.  Dummy Version                            --- DUH!!!*
4.  Text Dumping (Japanese)              --- How to get script dumps (NON-DTE)*
5.  The NEW, easy way to hack ROMs. --- New easy way of hacking ROMs.
    a. Using TBL Maker
    b. SCRIPT EXTRACTING
    c. SCRIPT INSERTING
6.  Something you should know about Inserter and Extractor...
7.  Thanks

*=old, CONVENTIONAL way of hacking
 

****************************************************************************
You WILL need these following utilities:

Thingy v. 08+           ----- (optional) script dumping tool*
Hexpose ver. 200      ----- my favorite utility
NESticle ver.42+       ----- of course, as usual...
(a rom)                    ----- obviously
patience                   ----- if you don't, then you'll never be a hacker!!!
NotePad                  ----- with this, it's a lot easier to open and make .TBLs*
Jair's Script Extractor ----- Extracts script!@# Saves hours of time.
Jair's Script Inserter  ----- Inserts script!! Beautiful program.
Jair's TBL Maker         ----- much easier to make TBLs
****************************************************************************
____________________________________________________________________________
Start hacking!!! --- Beginner's Version
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 

1.  Open NESticle.
 

2.  Using multitask in Windows, open my default Hexpose font table.
 

3.  Go back to NESticle, and go to the place in the rom where some text is.
 

4.  In NESticle, open up Pattern Tables.
 

5.  Look for the font table; the font table is all the english
characters.
 

6.  Click on the first in the font table( usually 0 ). That's zero.
Numbers do count, if you want them to.
 

7.  There's a number and some letters in the left-hand side of the
zoomed-in image. Write down that number.
 

8.  Everything after that should be in order; it should go: 0 1 2 3 4 5 6
7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z, just write the
condescending number( the number after ), and so on. An example of this would
be if 0=00, then 1 would be 01, 2 would be 02, then 3 would be 3... after it
gets to 09, it then changes to 0A. Then type the lettering after words. Note,
it always ends with either 9 or F. You'll see what I mean.
Here's an example, if 0=00, then...
 

0=00    6=06     C=OC    I=12   O=18  U=1E   a=24  g=2A  m=30    s=36
1=01    7=07     D=OD   J=13    P=19  V=1F   b=25  h=2B  n=31    t=37
2=02    8=08     E=OE    K=14   Q=1A W=20   c=26  i=2C   o=32    u=38
3=03    9=09     F=0F     L=15   R=1B  X=21   d=27  j=2D   p=33    v=39
4=04    A=0A    G=10    M=16  S=1C   Y=22   e=28  k=2E  q=34    w=3A
5=05    B=0B     H=11    N=17  T=1D   Z=23   f=29  l=2F    r=35    x=3B
 

y=3C    z=3D
 

There may be extra punctuation... that you will just do the same with.
You don't have to write these down; those were just examples.
 

9.  Return to the Astrocreep's default .TBL file. *MAKE SURE TO MAKE EXTRA COPIES!!!*
 

10. Fill in the font table information.
 

11. Then, when done, save the file. SAVE IT THE SAME NAME AS THE ROM!!!
 

12. Open up HexPose.
 

13. When it asks what thing you want to load, select the rom you have the
information for.
 

14. Then, hit f6, and type in the filename for which the font table is
named.
 

15. Voila!!! If you scroll down, there should be actual text in English.
Hack away... but remember this: MAKE SURE WHAT YOU HACK IS NO LONGER THAN
WHAT WAS IN THE ROM!!! That will be explained later, and also how to get
around it.
 

16. If you want to try and make the text longer than what's there, use
this... it's not an ASM hack, and therefore not very reliable. I myself have
only had 10% success.
 

17. In HEXPOSE, go to the end of the rom.
 

18. Press the INSERT key.
 

19. Enter 1024x16 bytes. I don't have a calculator on me right now,
sorry. Don't forget, this is version 01 of my doc.
 

20. Go back to where you'd like to add more text. How ever many more
letters it is, type insert again, then put in the text; afterwards, go back
to the end of the rom and delete however many bytes you added.
 

21. Save it to the rom and make sure you make copies of the rom; it may
fail. Exit HexPose and NESticle.
 

22. Then, reopen NESticle.
 

23. Load the rom; make sure you fix the header by going into ROM Header
and adding 1 to the 16k rom.
 

24.     It may or may not run.
 

25. Enjoy!!!
 

____________________________________________________________________________
Start hacking!!! --- Dummy Version
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
1.  Open NESticle. You can do this by opening Windows Explorer. Where is
Explorer? It's a little difficult to find, but it's there. First, click on
the start button in the lower left hand corner in Windows. When that's done,
click on Programs. It should be right above Documents. When you've clicked
on that, go to the very end of the files that you see. You'll then see the
icon for Windows Explorer. When Explorer is open, go to the folder in which
NESticle (and the roms) are located. If you forgot where NESticle is, then
you must be a real idiot. Keep Explorer open. That's Windows Explorer.
 

2.  Using multitask in Windows, open my default text file. That was added
in my zip file. To use multitask, all you have to do is hit Alt and Tab at
the same time. You can get to my default .TBL file by going into Explorer and
searching for it. It should be placed into the same folder as HexPose. HexPose
is the program you will use to hack the text. It's in David Boyle's downloads
section. As is my default .TBL file.
 

3.  Go back to NESticle, and go to the place in the rom where some text is.
This is done by actually playing the rom until you see some text.
 

4.  In NESticle, open up Pattern Tables. This is done by going into View
in the NESticle toolbar, then Pattern Tables. If you miss it..!
 

5.  Look for the font table; the font table is all the english
characters. The font table is also the whole long list of letters that you
see when pattern tables is open. ooo... isn't it magical? Don't answer that.
 

6.  Click on the first in the font table( usually 0 ). That's zero.
Numbers do count, if you want them to. What I mean by the first in the font
table is the first character in the font table, or in the letters that you
see. 0 is usually first.
 

7.  There's a number and/or some letters in the left-hand side of the
zoomed-in image. Write down that number. Why??? Because that's the first
thing that you'll need. The most important, too.
 

8.  Everything after that should be in order; it should go: 0 1 2 3 4 5 6
7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z, just write the
condescending number( the number after ), and so on. An example of this would
be if 0=00, then 1 would be 01, 2 would be 02, then 3 would be 3... after it
gets to 09, it then changes to 0A. Then type the lettering after words. Note,
it always ends with either 9 or F. You'll see what I mean.
Here's an example, if 0=00, then...
 

0=00    6=06     C=OC   I=12 O=18     U=1E   a=24  g=2A   m=30    s=36
1=01    7=07     D=OD  J=13 P=19      V=1F   b=25  h=2B   n=31     t=37
2=02    8=08     E=OE   K=14 Q=1A   W=20   c=26  i=2C   o=32      u=38
3=03    9=09     F=0F     L=15 R=1B    X=21   d=27  j=2D   p=33      v=39
4=04    A=0A   G=10     M=16 S=1C   Y=22   e=28  k=2E  q=34      w=3A
5=05    B=0B   H=11     N=17 T=1D   Z=23    f=29  l=2F    r=35      x=3B
 

y=3C    z=3D
 

There may be extra punctuation... that you will just do the same with.
You don't have to write these down; those were just examples.
 

Actually, that's pretty dumb as it is... I'll simplify later.
 

9.  Return to my default .TBL file. *MAKE SURE TO MAKE EXTRA COPIES!!!*
I sugest you MultiTask.
 

10. Fill in the font table information. The font table info is what was
the first character and whatever after... characters are letters or numbers.
 

11. Then, when done, save the file. SAVE IT THE SAME NAME AS THE ROM!!!
You can do this by right-clicking on the rom, and then selecting Copy from
the list of options that you see. This can only be done in Win95. If you
don't have Windows 95, get it; it's a lot faster and better than Windows 93.
 
 

12. Open up HexPose. This should either be in the same folder or in a
different folder as NESticle and the roms are. I suggest that they be in
different folders.
 

13. When it asks what thing you want to load, select the rom you have the
information for. It should come up immediately. Very immediately. Right when
you start it up. Hit enter to enter when you're on the right filename.
 

14. Then, hit f6, and type in the filename for which the font table is
named. THIS SHOULD BE THE SAME NAME AS THE ROM. It should be...
 

15. Voila!!! If you scroll down, there should be actual text in English.
Hack away... but remember this: MAKE SURE WHAT YOU HACK IS NO LONGER THAN
WHAT WAS IN THE ROM!!! That will be explained later, and also how to get
around it.
 

    Actually, it won't... not in the dummy version. Not ever. After you
understand all of what happened, you should be right on your way to being a
beginner.

____________________________________________________________________________
4. Text Dumping --- Japanese text dumping
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*** Most info taken from Necrosaro, then *dumbed*
*** Preferred for Beginners, not Newbies

1.  Open up NESticle, and find the hex addresses of three or four characters
in a Japanese word. This is the same procedure as was told in parts 2 and 3
of this DOC. Make a TBL, if you want.

2.  Search for those values in Thingy .08 and then get the address. Dump
with Thingy. Press SHIFT-D to dump the script. Save the output file as what
you'd like it to be saved. Preferably a .TBL file, or a .TXT file.

3.  Dump the script. Do what you'd like with it.

*** With Hexpose .215:

1.  Once again, get the hex addresses. Make a TBL of the info you got.

2.  Open up Hexpose.

3.  Hit f6 and apply the .TBL.

4.  Go to the position in the rom where you see the text you want to dump.

5.  Hit CTRL-D and the screen. THIS WILL ONLY DUMP THE SCREEN THAT YOU
SEE!!! In other words, I prefer Thingy.

6.  Done... I'll put in how to replace the text later.

____________________________________________________________________________
5. The NEW, Easy Way to Hack ROMs
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

1.  You should have downloaded Script Inserter, Script Extractor, and TBL Maker from Jair's, or the 'Creep's site. If you already have a TBL file made, skip this next part.

---

     a. ("'*^=- Using TBL Maker -=^*'")

        1.  Open up NESticle, and look for the font table (the alphabet). Usually, it starts with 0, and goes to z. Anyway, get the first hex value.

        2.  Open up TBL Maker. Enter in the tblname you'd like, and then hit "2" for plain ASCII text TBL making.

        3.  When it says, "Enter value to start with," enter in that first hex value, and specify what that hex value is. Then, go down the list, and when you're finished, leave the program. Boom, the TBL file is made.

---

2.  After you've got your TBL file made, it's time you extracted the script.

      b. ("'*^=- Using Script Extractor -=^*'")

        1.  Open Script Extractor.

        2.  Slap yourself on the back. You just opened up a C++ file!!

        3.  It should read: "Enter name of table file:" - From there, enter in the name of the TBL file. Enter in the name. Then, it should say: "File to extract text from:". Enter in the ROM name. After that, "File to write to:" -- save it as filename.txt, where iflename is the name you'd like to give it. Now, it says "Text block's starting address:" this is the tricky part.

        4.  Multitasking, open Hexpose. Use the file selector to select the ROM, and press f6 to load the TBL file. Make sure you use the whole TBL's filename.

        5.  Search through the ROM to find where the text is located. Look for the text, those words of the story, on the right. When you see it, stop, and look directly left of where the FIRST LINE, FIRST CHARACTER of the text begins.

        6.  Look at the bottom-left corner of the Hexpose screen. It should read: "Ofs," which is short for Offset. For example, if it says, "0000AAAAA", then AAAAA is the text block's address. In Dragon Warrior 3, some text is located at 3940C. Try using the TBL which came with Hexpose with it, and the ROM, which you should have.

        7.  It should then ask how many bytes to dump. I always dump 10000, it's fun. After you've finished the dumping, it you may then edit the file.

---

3.  Open up the TXT file you made of the dump. It should be small enough to read with Notepad. Either way, open it up, and begin editing. You'll see the text, all you have to do is change it.

4.  If I'm not mistaken, YOU CAN WRITE LONGER THAN HOW LONG THE ORIGINAL SENTENCE IS!!! WHEE!@#!@# When you're done, save it, and then we'll begin with Jair's Script Inserter.

     c. ("'*^=- Using Script Inserter -=^*'")

        1.  Script Inserter should start the same way as Extractor; it should ask: "Table file:". Put in the name of tha TBL file.

        2.  After that, it should say: "Text file to read from:" there, put in the name of the extracted TXT file you made with extractor.

        3.  "File to insert extracted text to:" what you should put here is the ROMName, the name of the ROM you extracted the text from.

        4.  "Address to start inserting text at:" --- remember that one hex address we got? Well, insert that there.

        5.  "Okay to overwrite XXXX bytes?" --- HELL YES!!!@#

        6. After that's done... YOU'RE DONE!@!!#@ WHOOO!!! GO AND MAKE SOME CAKE! BUY ME SOME SODA!! GO AND KILL YOUR GRANDMOTHER!!

        7. No, don't, really, kill your grandmother. It's not a smart thing to do. It's just not, you could hurt yourself by getting in jail. I know. I did it four times. Don't ask how I have 4 grandmas.
 

____________________________________________________________________________
6.  Something you should know about Inserter and Extractor...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

SCRIPT EXTRACTER AND HEXPOSE ARE NOT COMPATIBLE!!
Make sure NESticle, Hexpose, Script Inserter, Script Extractor, the ROM, and your patience are all in one directory.

If you have a weird TBL file, it'll say that it's unable to read from the TBL file.

For example, if your TBL file is like this:

00 0
01 1              This is what Hexpose reads. It's sad that Extracter and it are not
02 2                                                  compatible.
03 3
04 4
 

It should read like this:

00=0
01=1
02=2
03=3
04=4
 

All you have to do is change the spaces to equal signs, and vice versa (exact opposite).
 

----- Thanks
 

Jair, without whom, would have made this doc a lot more lame. :)
Fabiano Lopes, for help with MMC4.
Necrosaro for a sweet dumping program.
Javier Moreno, for help with my PPU engine.
MindRape, for starting it all.
Astrocreep2000 for being more human than human.
All those hookers on Harbor Street. (Tanisha, I still remember you!!!)
Jesus Christ!!!@#

Zack Lopez  production.*

* I am in no way related to Bill Clinton.**

** In theory.***

*** Well, I have no proof that I'm not related to Bill Clinton, but I can be sure that I'm not.****

**** On second thought, I can't; both he and I always seem to get chicks quite easily, so he must be part of my family...*****

***** Searching through my family tree, there are no Clintons in it. There is one Charles Manson, but that's the only white person in my tree.******

****** Bob Hope doesn't count, because he's practically a walking corpse.